// GTY

#pragma once

#include "CoreMinimal.h"
#include "AbilitySystem/Abilities/AuraDamageGameplayAbility.h"
#include "AuraFireBlast.generated.h"

class AAuraFireBall;
/**
 * 
 */
UCLASS()
class AURAGAME_API UAuraFireBlast : public UAuraDamageGameplayAbility
{
	GENERATED_BODY()

public:
	virtual FString GetDescription(int32 Level) override; //获取当前等级的技能描述
	virtual FString GetNextLevelDescription(int32 Level) override; //获取技能下一等级的技能描述

	FString GetDescriptionAtLevel(int32 Level, const FString& Title); //获取对应等级的技能描述

	UFUNCTION(BlueprintCallable)
	TArray<AAuraFireBall*> SpawnFireBalls(bool IsOverloadReturnObject,AActor* TargetActor = nullptr);

	UFUNCTION(BlueprintCallable)
	TArray<AAuraFireBall*> EnemySpawnFireBalls(float Angle =360.f,int32 NumBalls = 12);

protected:
	UPROPERTY(EditDefaultsOnly, Category="FireBlast")
	int32 NumFireBalls = 12; //最大生成火球数量

private:
	UPROPERTY(EditDefaultsOnly, Category="FireBlast")
	TSubclassOf<AAuraFireBall> FireBallClass;
	
	
};
